<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>


    <script>
        // 继承性：
        // 假设有两个对象 A 和 B , B对象继承了A对象
        // B对象拥有A对象的属性和方法

        // 动物 (父类 / 父对象)
            // 狮子 (子类 / 子对象)
            // 老虎 (子类 / 子对象)


        // 构造函数 (父类)
        function Animal(name) {
            this.name =  name || "动物";
        }
        Animal.prototype.eat = function(){
            console.log("吃东西");
        }


        
        // 构造函数 (子类)
        function Loin() {
            this.color = "棕色"
        }
        // 子类的原型
        // 把整个Animal实例对象赋值给Loin的原型
        Loin.prototype = new Animal("派克斯");

        // 设置构造函数属性
        // Loin.prototype.constructor = Loin;
        
        // 子类的原型添加方法
        Loin.prototype.run = function(){
            console.log("在奔跑");
        }

        // 创建子类的实例
        var shizi =  new Loin();

        // 打印子类的实例
        console.log(shizi);

        // 狮子拥有动物的属性
        console.log(shizi.name);

        // 狮子拥有动物的方法
        shizi.eat();

        // 描述: 父类的成员可以被子类继承 (你的就是我的,我的还是我的)
        // 利用原型对象可以共享属性和方法,这么一个特点实现的继承


        // 创建Animal的实例
        // var dongwu = new Animal();
        // console.log(dongwu.color);// undefined


    </script>
</body>
</html>